撰寫程式的時候,通常會使用版本控制軟體來儲存程式碼。萬一程式出了什麼問題,就能退回之前的沒有問題的版本,想要找問題時比較方便。另外程式碼可能是由很多人一起開發的,非常需要控管程式碼版本的功能,如果沒有版本控制軟體的話,程式碼恐怕會是一團亂。
目前最常被使用的版本控制軟體是 Git。Git 本身是免費的開源軟體,我們可以自己架一個 Git Server,或者是使用商用的 Git 儲存庫例如 Github、Gitlab。他們都有免費的方案可以儲存,另外也會包含一些比較進階的軟體工程相關的服務,像是上傳程式碼後自動跑測試、佈署程式等。更進階的功能可能就要付費。
Git 和其他版本控制軟體的不同是 Git 是分散式的,每個人的電腦中的專案都算是一個 Git 儲存庫。如果程式碼開發到了一個段落,我就可以 commit
程式碼在我的電腦中,不用每次都和 GIt Server 連線。在想要上傳程式碼到共用的程式庫時,我們可以將紀錄 push
到遠端的 Git 庫,讓別人也能看見我寫的程式碼。通常我們會用 branch
來區分功能、管理程式碼,例如通常會設定 master
為主要分支,如果有要開發新功能會開一個 feature/new-feature-name
的分支,開發完成後會再 merge
回到 master 分支。
當有其他人上傳他們的版本,我們可以用 pull
拉下新的程式碼。另外有可能因為兩個人同時改動同一個檔案,造成 conflict
,就可能需要人工確定一下到底要用誰的程式碼,或是要怎麼合併。
這邊只能先講一個大概念,還是需要實際操作一遍才會比較清楚。